type
status
date
slug
summary
tags
category
icon
password
一.单选题(total60 questions,100.0mark)
1
【Single Choice】有如下程序int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=&a[3],b;b=p[5];则b的值是( ).
• A、5
• B、6
• C、9
• D、8
My Answer:C:
9
;
2
【Single Choice】函数fun的返回值是( ).fun(char *a,char *b){ int num=0,n=0; while(*(a+num)!='\0') num++; while(b[n]){*(a+num)=b[n];num++;n++;} return num;}
• A、字符串a的长度
• B、字符串b的长度
• C、字符串a和b的长度之差
• D、字符串a 和b的长度之和
My Answer:D:
字符串a 和b的长度之和
;
3
【Single Choice】有以下程序main( ){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; printf("%d\n",*p+*q); }程序运行后的输出结果是( ).
• A、16
• B、10
• C、8
• D、6
My Answer:B:
10
;
4
【Single Choice】有如下程序段int *p,a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为( ).
• A、12
• B、11
• C、10
• D、编译出错
My Answer:B:
11
;
5
【Single Choice】下面程序的输出结果是( ).main( ){ int a[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%d\n",*p+9); }
• A、0
• B、1
• C、10
• D、9
My Answer:C:
10
;
6
【Single Choice】若有以下程序int a[]={2,4,6,8};main( ){ int i; int *p=a; for(i=0;i<4;i++) a[i]=*p; printf("%d\n",a[2]); }上面程序输出结果是( ).
• A、6
• B、8
• C、4
• D、2
My Answer:D:
2
;
7
【Single Choice】下面程序的运行结果是( ).main( ){ static char a[]="Language",b[]="programe"; char *p1,*p2;int k; p1=a; p2=b; for(k=0; k<=7; k++) if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k)); }
• A、gae
• B、ga
• C、Language
• D、有语法错
My Answer:A:
gae
;
8
【Single Choice】下面说明语句中,语法不正确的是( ).
• A、char a[10]="china";
• B、char a[10],*p=a;p="china";
• C、char *a;a="china";
• D、char a[10],*p;p=a="china";
My Answer:D:
char a[10],*p;p=a="china";
;
9
【Single Choice】下面程序的运行结果是( ).#include "stdio.h"#include "string.h"main( ){ char *s1="AbDeG"; char *s2="AbdEg"; s1+=2;s2+=2; printf("%d\n",strcmp(s1,s2));}
• A、正数
• B、负数
• C、零
• D、不确定的值
My Answer:B:
负数
;
10
【Single Choice】若有定义int a[9],*p=a;则p+5表示( ).
• A、数组元素a[5]的值
• B、数组元素a[5]的地址
• C、数组元素a[6]的地址
• D、数组元素a[0]的值加上5
My Answer:A:
数组元素a[5]的值
;
11
【Single Choice】设有定义:char p[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( ).
• A、sizeof(p)
• B、sizeof(char)
• C、sizeof(*q)
• D、sizeof(p[0])
My Answer:A:
sizeof(p)
;
12
【Single Choice】若要对a进行++运算,则a应具有下面( )说明.
• A、int a[3][2];
• B、char *a[]={"12","ab"};
• C、char (*a)[3];
• D、int b[10],b=*a;
My Answer:C:
char (*a)[3];
;
13
【Single Choice】若有定义:int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为( ).
• A、*(*(a+i)+j)
• B、(a+i)[j]
• C、*(a+i+j)
• D、*(a+i)+j
My Answer:A:
- (*(a+i)+j)
;
14
【Single Choice】若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10} ; *p=a ;则不能表示a数组定义的元素的表达式是( ).
• A、*p
• B、a[10]
• C、*a
• D、a[p-a]
My Answer:B:
a[10]
;
15
【Single Choice】下面程序的运行结果是( ).void delch(char *s){ int i,j; char *a; a=s; for(i=0,j=0;a[i]!='\0';i++) if(a[i]>='0'&&a[i]<='9') {s[j]=a[i];j++;} s[j]='\0'; }main( ){ char *item="a34bc"; delch(item); printf("\n%s",item); }
• A、abc
• B、34
• C、a34
• D、a34bc
My Answer:B:
34
;
16
【Single Choice】以下程序的输出结果是( ).void fun (float *p1, float *p2, float *s){ *s=*p1+*p2++; }main( ){ float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a; fun(a,b,s); printf("%5.2f\n",*s); }
• A、11.10
• B、12.00
• C、21.10
• D、1.10
My Answer:A:
11.10
;
17
【Single Choice】有以下程序void fun(int n,int *p){ int f1,f2; if(n==1||n==2) *p=1; else { fun(n-1,&f1); fun(n-2,&f2); *p=f1+f2;} }main( ){ int s; fun(3,&s); printf("%d\n",s);}程序的运行结果是( ).
• A、2
• B、3
• C、4
• D、5
My Answer:A:
2
;
18
【Single Choice】下面程序段的运行结果是( ).char *s="abcde";s+=2;printf("%d",s);
• A、cde
• B、字符'c'
• C、字符'c'的地址
• D、无确定的输出结果
My Answer:A:
cde
;
19
【Single Choice】若有说明:int *p,m=5,n;以下正确的程序段是( ).
• A、p=&n;scanf("%d",&p);
• B、p=&n;scanf("%d",*p);
• C、scanf("%d",&n);*p=n;
• D、p=&n;*p=m;
My Answer:D:
p=&n;*p=m;
;
20
【Single Choice】下面程序段的运行结果是( ).char a[]="language",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}
• A、LANGUAGE
• B、language
• C、LANG
• D、langUAGE
My Answer:C:
LANG
;
21
【Single Choice】设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( ).
• A、k=*p1+*p2;
• B、p2=k;
• C、p1=p2;
• D、k=*p1;
My Answer:B:
p2=k;
;
22
【Single Choice】设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( ).
• A、c=*p1+*p2;
• B、p2=c;
• C、p1=p2;
• D、c=*p1*(*p2);
My Answer:B:
p2=c;
;
23
【Single Choice】有以下程序void f(int *q){ int i=0; for(;i<5; i++) (*q)++;}main( ){ int a[5] ={1,2,3,4,5}, i; f(a); for(i=0;i<5; i++) printf("%d,", a[i]);}程序运行后的输出结果是( ).
• A、2,2,3,4,5,
• B、6,2,3,4,5,
• C、1,2,3,4,5,
• D、2,3,4,5,6,
My Answer:B:
6,2,3,4,5,
;
24
【Single Choice】阅读下列程序,则执行后的结果为( ).main( ){ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56}; printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
• A、3e,6
• B、62,5
• C、56,5
• D、62,6
My Answer:A:
3e,6
;
25
【Single Choice】阅读下面程序,则执行后的结果是( ).#include "stdio.h"main( ){ char str[]="tomeetme",*p; for(p=str;p<str+7;p+=2) putchar(*p); printf("\n");}
• A、tomeetme
• B、tmem
• C、oete
• D、tome
My Answer:B:
tmem
;
26
【Single Choice】下面程序段的运行结果是( ).char *p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
• A、8
• B、12
• C、4
• D、7
My Answer:C:
4
;
27
【Single Choice】阅读下列程序,则在执行后,程序的运行结果为( ).#include "stdio.h"#include "string.h"main( ){ char a[30]="nice to meet you!"; strcpy(a+strlen(a)/2,"you"); printf("%s\n",a);}
• A、nice to meet you you
• B、nice to
• C、meet you you
• D、nice to you
My Answer:D:
nice to you
;
28
【Single Choice】有以下程序void f(int n, int *r){ int rl=0; if (n%3==0) r1=n/3; else if(n%5==0) r1=n/5; else f(--n, &r1); *r=r1;}main( ){ int m=7, r; f(m,&r); printf("%d", r);}程序运行后的输出结果是( ).
• A、2
• B、1
• C、3
• D、0
My Answer:A:
2
;
29
【Single Choice】设有下面的程序段:char s[]="china";char *p;p=s;则下列叙述正确的是( ).
• A、s和p完全相同
• B、数组s中的内容和指针变量p中的内容相同
• C、s数组长度和p所指向的字符串长度相等
• D、*p与s[0]相等
My Answer:D:
- p与s[0]相等
;
30
【Single Choice】有以下程序void ss(char *s,char t){ while(*s) { if(*s==t) *s=t-'a'+'A'; s++; } }main( ){ char str1[100]="abcddfefdbd",c='d'; ss(str1,c); printf("%s\n",str1); }程序运行后的输出结果是( ).
• A、ABCDDEFEDBD
• B、abcDDfefDbD
• C、abcAAfefAbA
• D、Abcddfefdbd
My Answer:B:
abcDDfefDbD
;
31
【Single Choice】有下面程序段#include "string.h"main( ){ char a[3][20]={{"china"},{"isa"},{"bigcountry!"}}; char k[100]={0},*p=k; int i; for(i=0;i<3;i++) { p=strcat(p,a[i]);} i=strlen(p); printf("%d\n",i);}则程序段的输出结果是( ).
• A、18
• B、19
• C、20
• D、21
My Answer:B:
19
;
32
【Single Choice】请选出以下程序的输出结果main( ){ int a[]={1,2,3,4},i; int x=0; for(i=0;i<4;i++) { sub(a,x);printf("%d",x);} printf("\n"); }sub(s,y)int *s,y;{ static int t=3; y=s[t];t--; }
• A、1 2 3 4
• B、4 3 2 1
• C、0 0 0 0
• D、4 4 4 4
My Answer:C:
0 0 0 0
;
33
【Single Choice】以下叙述中正确的是( ).
• A、构成C程序的基本单位是函数
• B、可以在一个函数中定义另一个函数
• C、main( )函数必须放在其他函数之前
• D、所有被调用的函数一定要在调用之前进行定义
My Answer:D:
所有被调用的函数一定要在调用之前进行定义
;
34
【Single Choice】若有定义: char *st= "how are you "; 下列程序段中正确的是( ).
• A、char a[11], *p; strcpy(p=a+1,&st[4]);
• B、char a[11]; strcpy(++a, st);
• C、char a[11]; strcpy(a, st);
• D、char a[], *p; strcpy(p=&a[1],st+2);
My Answer:A:
char a[11], *p; strcpy(p=a+1,&st[4]);
;
35
【Single Choice】对下述程序的判断中,正确的是( ).#include "stdio.h"void main( ){ char*p,s[128]; p=s; while(strcmp(s,"End")) { printf("请输入一个字符串:"); gets(s); while(*p) putchar(*p++); } }
• A、此程序循环接收字符串并输出,直到接收字符串"End"为止
• B、此程序循环接收字符串,接收到字符串"End"则输出,否则程序终止
• C、此程序循环接收字符串并输出,直到接收字符串"End"为止,但因为代码有错误,程序不能正常工作
• D、此程序循环接收字符串并将其连接在一起,直到接收字符串"End"为止,输出连接在一起的字符串
My Answer:A:
此程序循环接收字符串并输出,直到接收字符串"End"为止
;
36
【Single Choice】若有定义和语句int *point,a=4;point=&a;下面均代表地址的一组选项是( ).
• A、a,point,*&a
• B、&*a,&a,*point
• C、*&point,*point,&a
• D、&a,&*point,point
My Answer:D:
&a,&*point,point
;
37
【Single Choice】现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是( ).
• A、p=&a;
• B、q=&b;
• C、p=q;
• D、p=a;
My Answer:D:
p=a;
;
38
【Single Choice】有以下程序void fun(char *t,char *s){ while(*t!=0) t++; while((*t++=*s++)!=0);}main( ){ char ss[10]="acc",aa[10]="bbxxyy"; fun(ss,aa); printf("%s,%s\n",ss,aa);}程序的运行结果是( ).
• A、accxyy,bbxxyy
• B、acc,bbxxyy
• C、accxxyy,bbxxyy
• D、accbbxxyy,bbxxyy
My Answer:D:
accbbxxyy,bbxxyy
;
39
【Single Choice】有以下函数int aaa(char *s){ char *t=s; while(*t++); t--; return(t-s);}以下关于aaa函数的功能的叙述正确的是( ).
• A、求字符串s的长度
• B、比较两个串的大小
• C、将串s复制到串t
• D、求字符串s所占字节数
My Answer:A:
求字符串s的长度
;
40
【Single Choice】有以下语句,则对a数组元素的引用不正确的是( )(0≤i≤9)int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
• A、a[p-a]
• B、*(&a[i])
• C、p[i]
• D、*(*(a+i))
My Answer:D:
- (*(a+i))
;
41
【Single Choice】有以下函数int fun(char *s){ char *t=s; while(*t) t++; return(t-s);}该函数的功能是( ).
• A、比较两个字符串的大小
• B、计算s所指字符串占用内存字节的个数
• C、计算s所指字符串的长度
• D、将s所指字符串复制到字符串t中
My Answer:C:
计算s所指字符串的长度
;
42
【Single Choice】下面程序段的运行结果是( ).char str[]="ABC",*p=str;printf("%d\n",*(p+3));
• A、67
• B、0
• C、字符'C'的地址
• D、字符'C'
My Answer:B:
0
;
43
【Single Choice】以下程序执行后x的值是( ).main( ){ int x,y=252,i=386,*m=&y,*z=&i; x=(z==y); printf("%d",x); }
• A、252
• B、1
• C、0
• D、运行时出错,x无定值
My Answer:C:
0
;
44
【Single Choice】下列程序执行后的输出结果是( ).main( ){ int a[3][3],*p,i; p=&a[0][0]; for(i=1; i<9; i++) p[i]=i+1; printf("%d\n",a[1][2]);}
• A、3
• B、6
• C、9
• D、随机数
My Answer:B:
6
;
45
【Single Choice】下面程序段的运行结果是( ). char *s="abcde"; s+=2; printf("%s",s);
• A、cde
• B、字符'c'
• C、字符'c'的地址
• D、无确定的输出结果
My Answer:A:
cde
;
46
【Single Choice】执行以下程序后,a,b的值分别为( ).main( ){ int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); }
• A、-1,5
• B、1,6
• C、0,7
• D、4,10
My Answer:C:
0,7
;
47
【Single Choice】有以下程序main( ){ char ch[]="uvwxyz",*pc; pc=ch;printf("%c\n",*(pc+5));}程序运行后的输出结果是
• A、z
• B、0
• C、元素ch[5]的地址
• D、字符y的地址
My Answer:A:
z
;
48
【Single Choice】下面程序段中,输出*的个数是( ).char *s="\ta\018bc";for(;*s!='\0';s++)printf("*");
• A、9
• B、5
• C、6
• D、7
My Answer:C:
6
;
49
【Single Choice】以下叙述中错误的是( ).
• A、改变函数形参的值,不会改变对应实参的值
• B、函数可以返回地址值
• C、可以给指针变量赋一个整数作为地址值
• D、当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
My Answer:A:
改变函数形参的值,不会改变对应实参的值
;
50
【Single Choice】下列程序的输出结果是( ).#define N 3#define M 3void fun(int a[M][N]){ printf("%d\n",*(a[1]+2));}main( ){ int a[M][N]; int i,j; for(i=0;i<M;i++) for(j=0;j<N;j++) a[i][j]=i+j-(i-j); fun(a);}
• A、3
• B、4
• C、5
• D、6
My Answer::B
B
[解析] 若有以下定义:int a[3][4],i,j;且0<=i<3,0<=j<4,则可以用以下几种方式来引用数组中的第i行、第j列的元素:a[i][j], (a[i]+j), ((a+i)+j), ((a+i))[j], (&a[0][0]+4i+j)。
51
【Single Choice】下列程序的运行结果为( ).void abc(char *str){ int a,b; for(a=b=0;str[a]!='\0';a++) if(str[a]!='c') {str[b]=str[a]; b++; }str[b]='\0';}main( ){ char str[]="abcdef"; abc(str); printf("str[]=%s",str); }
• A、str[]=abdef
• B、str[]=abcdef
• C、str[]=a
• D、str[]=ab
My Answer:A:
str[]=abdef
;
52
【Single Choice】以下程序的输出结果是( ).int fun(int n,int *s){ int f1,f2; if(n==0‖n==1) *s=1; else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } }main( ){ int x; fun(6,&x); printf("\n%d" ,x); }
• A、7
• B、13
• C、9
• D、10
My Answer:B:
13
;
53
【Single Choice】下面程序的输出结果是( ).#include "string.h"main( ){ char *p1="abc",*p2="ABC",str[50]= "xyz"; strcpy(str+2,strcat(p1,p2)); printf("%s\n",str); }
• A、xyzabcABC
• B、zabcABC
• C、xyabcABC
• D、yzabcABC
My Answer:C:
xyabcABC
;
54
【Single Choice】有以下程序main( ){ int n,*p=NULL; *p=&n; printf("输入 n:"); scanf("%d",&p); printf("输出 n:"); printf("%d\n",p);}该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( ).
• A、intn,*p=NULL;
• B、*p=&n;
• C、scanf("%d",&p);
• D、printf("%d\n",p);
My Answer:A:
intn,*p=NULL;
;
55
【Single Choice】若在定义行:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确给变量赋值的是( ).
• A、scanf("%d",a,b,c);
• B、scanf("%d%d%d",a,b,c);
• C、scanf("%d",p);
• D、scanf("%d",&p);
My Answer:C:
scanf("%d",p);
;
56
【Single Choice】若有以下定义,则对a数组元素的正确引用是( ). int a[5],*p=a;
• A、*&a[5]
• B、a+2
• C、*(p+2)
• D、*(a+5)
My Answer:C:
- (p+2)
;
57
【Single Choice】有以下函数int fun(char *s){ char *t=s; while(*t++); return(t-s);}该函数的功能是( ).
• A、比较两个字符串的大小
• B、计算s所指字符串占用内存字节的个数
• C、计算s所指字符串的长度
• D、将s所指字符串复制到字符串t中
My Answer:C:
计算s所指字符串的长度
;
58
【Single Choice】有以下程序void fun(int *a,int n){ int t,i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;} }main( ){ int c[10]={1,2,3,4,5,6,7,8,9,0},i; fun(c+4,6); for(i=0;i<10;i++) printf("%d,",c[i]); printf("\n");}程序的运行结果是( ).
• A、1,2,3,4,5,6,7,8,9,0,
• B、0,9,8,7,6,5,1,2,3,4,
• C、0,9,8,7,6,5,4,3,2,1,
• D、1,2,3,4,9,8,7,6,5,0,
My Answer:D:
1,2,3,4,9,8,7,6,5,0,
;
59
【Single Choice】有以下函数int fun(char *s){ char *t=s; while(*t) ++t; return(t-s);}该函数的功能是( ).
• A、比较两个字符串的大小
• B、计算s所指字符串占用内存字节的个数
• C、计算s所指字符串的长度
• D、将s所指字符串复制到字符串t中
My Answer:C:
计算s所指字符串的长度
;
60
【Single Choice】下列程序执行后的输出结果是( ).void func(int *a,int b[]){ b[0]=*a+6; }main( ){ int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d\n",b[0]); }
• A、6
• B、7
• C、8
• D、9
My Answer:A
- 作者:嘻咦啊呀
- 链接:https://blog.zhcn.xyz/article/C%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%20%E6%B5%8B%E9%AA%8C%E9%A2%98%E4%B8%83
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。